package br.com.iswe.gwt.ui.client.menu;

import br.com.iswe.gwt.ui.client.ISWEImageFactory;

import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.HasVerticalAlignment;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Widget;

public class BarraMenuLateral extends Composite {
	
	protected FlexTable table = new FlexTable();
	
	protected Image setaFechar = ISWEImageFactory.getCommonImageBundle().setaEsquerda10().createImage();
	protected Image setaAbrir = ISWEImageFactory.getCommonImageBundle().setaDireita10().createImage();
	
	protected ClickListener listener = new ClickListener(){
		public void onClick(Widget sender) {
			//Comuta o estado do menu...
			boolean estado = table.getFlexCellFormatter().isVisible(0, 0);
			estado = ! estado;
			table.getFlexCellFormatter().setVisible(0, 0, estado);
			table.getFlexCellFormatter().setVisible(0, 1, estado);
			table.getFlexCellFormatter().setVisible(0, 2, estado);
			//altera o texto do link
			if(estado){
				table.setWidget(0, 3, setaFechar);
			}
			else{
				table.setWidget(0, 3, setaAbrir);
			}
		}
	};
	
	public BarraMenuLateral(Widget widget){
		initWidget(table);
		
		table.setStyleName("menuLateral");
		table.setCellSpacing(0);
		table.setCellPadding(0);
		
		//Espaco esquerdo
		table.getFlexCellFormatter().setStyleName(0, 0, "esq");
		
		//Menu
		table.getFlexCellFormatter().setStyleName(0, 1, "menu");
		table.getFlexCellFormatter().setVerticalAlignment(0, 1, HasVerticalAlignment.ALIGN_TOP);
		table.setWidget(0, 1, widget);
		
		//Espaco direito
		table.getFlexCellFormatter().setStyleName(0, 2, "dir");
		
		//Link Fechar
		setaFechar.addClickListener(listener);
		setaFechar.setStyleName("seta");
		setaAbrir.addClickListener(listener);
		setaAbrir.setStyleName("seta");
		
		table.getFlexCellFormatter().setVerticalAlignment(0, 3, HasVerticalAlignment.ALIGN_MIDDLE);
		table.getFlexCellFormatter().setHorizontalAlignment(0, 3, HasHorizontalAlignment.ALIGN_RIGHT);
		table.getFlexCellFormatter().setStyleName(0, 3, "link");
		table.setWidget(0, 3, setaFechar);
	}
	
}
